#include <stdio.h>
#include <conio.h>
#include <math.h>

using namespace std;

struct tmx
{
       int val;
       int flag;
       }m;

tmx sndmax(int n, int tab[])
{
    int max=tab[0];
    int min=tab[0];
    for(int i=0;i<n;i++)
    {
       if(tab[i]>max) max=tab[i];
       if(tab[i]<min) min=tab[i];
    }
    int sndmax=min;
    for(int i=0;i<n;i++)
    {
       if(tab[i]>sndmax && tab[i]<max) sndmax=tab[i];
    }
    tmx ret;
    if(max==sndmax) ret.flag=0;
    else
    {
        ret.flag=1;
        ret.val=sndmax;
    }
    return ret;
}

int sndmax_index(int n, int tab[])
{
    int index;
    int max=tab[0];
    int min=tab[0];
    for(int i=0;i<n;i++)
    {
       if(tab[i]>max) max=tab[i];
       if(tab[i]<min) min=tab[i];
    }
    int sndmax=min;
    for(int i=0;i<n;i++)
    {
       if(tab[i]>sndmax && tab[i]<max) { sndmax=tab[i]; index=i; }
    }
    if(max==sndmax) index=-1;
    return index;
}

int main()
{
    const int n=8;
    int tab[n]={2,1,3,-4,0,5,0,-324};
    tmx df;
    df=sndmax(n,tab);
    if(df.flag)
        printf("sndmax()=%i",df.val);
    else
        printf("sndmax()=nie instnieje");
    printf("\nsndmax_index=%i",sndmax_index(n,tab));
    getchar();
    return 0;
}
